package br.com.locasis.entity;

// Generated 24/05/2012 20:14:44 by Hibernate Tools 3.4.0.CR1

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.Table;
import javax.persistence.Transient;

import org.hibernate.validator.NotNull;

import br.com.locasis.utilitarios.UtilString;

/**
 * TabelaValorAutomovel generated by hbm2java
 */
@Entity
@Table(name = "tabela_valor_automovel")
public class TabelaValorAutomovel implements java.io.Serializable {

	private Integer idTabelaValorAutomovel;
	private TabelaValor tabelaValor;
	private Automovel automovel;
	private Float valorDiaria;
	private Float valorKm;
	private Float valorHora;
	private boolean flgAtivo;
	
	private boolean selecionado;

	public TabelaValorAutomovel() {
	}
	
	public TabelaValorAutomovel(TabelaValorAutomovel tabela) {
		this.tabelaValor = tabela.getTabelaValor();
		this.automovel = tabela.getAutomovel();
		this.valorDiaria = tabela.getValorDiaria();
		this.valorKm = tabela.getValorKm();
		this.valorHora = tabela.getValorHora();
		this.flgAtivo = tabela.isFlgAtivo();
	}

	@Id
	@Column(name = "id_tabela_valor_automovel", unique = true, nullable = false)
	@GeneratedValue(strategy=GenerationType.IDENTITY)
	public Integer getIdTabelaValorAutomovel() {
		return idTabelaValorAutomovel;
	}

	public void setIdTabelaValorAutomovel(Integer idTabelaValorAutomovel) {
		this.idTabelaValorAutomovel = idTabelaValorAutomovel;
	}

	@ManyToOne(fetch = FetchType.LAZY)
	@JoinColumn(name = "id_tabela_valor", nullable = false)
	@NotNull
	public TabelaValor getTabelaValor() {
		return tabelaValor;
	}

	public void setTabelaValor(TabelaValor tabelaValor) {
		this.tabelaValor = tabelaValor;
	}

	@Column(name = "valor_diaria", nullable = false)
	public Float getValorDiaria() {
		return valorDiaria;
	}

	public void setValorDiaria(Float valorDiaria) {
		this.valorDiaria = valorDiaria;
	}

	@Column(name = "valor_km", nullable = false)
	public Float getValorKm() {
		return valorKm;
	}

	public void setValorKm(Float valorKm) {
		this.valorKm = valorKm;
	}

	@Column(name = "valor_hora", nullable = false)
	public Float getValorHora() {
		return valorHora;
	}

	public void setValorHora(Float valorHora) {
		this.valorHora = valorHora;
	}

	@ManyToOne(fetch = FetchType.LAZY)
	@JoinColumn(name = "id_automovel", nullable = false)
	@NotNull
	public Automovel getAutomovel() {
		return this.automovel;
	}

	public void setAutomovel(Automovel automovel) {
		this.automovel = automovel;
	}

	@Column(name = "flg_ativo", nullable = false)
	public boolean isFlgAtivo() {
		return flgAtivo;
	}
	
	public void setFlgAtivo(boolean flgAtivo) {
		this.flgAtivo = flgAtivo;
	}

	@Transient
	public boolean isSelecionado() {
		return selecionado;
	}

	@Transient
	public void setSelecionado(boolean selecionado) {
		this.selecionado = selecionado;
	}
	
	@SuppressWarnings("static-access")
	@Transient
	public String getValorDiariaFormatado(){
		if(this.getValorDiaria() != null) {
			/*
			DecimalFormat df = new DecimalFormat("#,###.00");
			return "R$ "+df.format(this.getValorDiaria());
			*/
			return UtilString.getInstance().formatarMoeda(this.getValorDiaria());
		}
		return null;
	}
	
	@SuppressWarnings("static-access")
	@Transient
	public String getValorHoraFormatado(){
		if(this.getValorHora() != null){
			/*
			DecimalFormat df = new DecimalFormat("#,###.00");
			return "R$ "+df.format(this.getValorHora());
			*/
			return UtilString.getInstance().formatarMoeda(this.getValorHora());
			
		}
		return null;
	}
	
	@SuppressWarnings("static-access")
	@Transient
	public String getValorKmFormatado(){
		if(this.getValorKm() != null){
			return UtilString.getInstance().formatarMoeda(this.getValorKm());
		}
		return null;
	}
	
}
